perm filename FRMBNF.BLI[AI,LCS] blob
sn#812685 filedate 1983-01-17 generic text, type T, neo UTF8
! ;THE MODIFIED BNF SYNTAX DESCRIBED IN TERMS OF ITSELF .
!
! BNFDEFINITION = METASYMBOL "=" BNFCOMPONENT [ COMMENT ] "." .
!
! BNFCOMPONENT = ( TERMINAL l
! METASYMBOL l
! OR l
! AND l
! OPTION l
! LIST l
! REPEAT l
! ACTION ) .
!
! TERMINAL = """ *ASCIICHARACTER """ ;TERMINAL CHARACTER STRING .
!
! METASYMBOL = [ *LETTER "-" ] *LETTER ;AN ELEMENT
! OF THE SYNTAX DEFINED BY THE SYNTAX OR BY A LEXICAL
! PROCESS .
!
! OR = "(" BNFCOMPONENT *[ "l" BNFCOMPONENT ] ")"
! ;ONLY ONE OF THE BNFCOMPONENTS IS REQUIRED .
!
! AND = BNFCOMPONENT *[ BNFCOMPONENT ] ;ALL OF THE
! BNFCOMPONENTS ARE REQUIRED .
!
! OPTION = "[" BNFCOMPONENT "]" ;USE OF THE BNFCOMPONENT IS
! OPTIONAL .
!
! LIST = "+" BNFCOMPONENT ;BNFCOMPONENTS SEPERATED BY
! COMMAS .
!
! REPEAT = "*" BNFCOMPONENT ;BNFCOMPONENTS NOT SEPERATED BY
! COMMAS .
!
! ACTION = "%" ACTIONNAME "%" ;ACTION TO BE PERFORMED WHEN ENCOUNTERED .
!
! COMMENT = ";" *ASCIICHARACTER .
!
! ;*****************************************************************************************************************
!
! ;CHECKS THAT THE FORMAT STATEMENT CONFORMS TO THE SYNTAX WHICH FOLLOWS.
!
! FORMATSPEC = LPAREN [ FDGROUP ] RPAREN LINEND .
!
! FDGROUP = +( FIELDDESCRIPTOR [ *SLASH ] ) .
!
! FIELDDESCRIPTOR = ( ( PLUS l MINUS ) CONST PCHAR [ [ CONST ] TWODESCRIPTOR ] l
! CONST ( PCHAR [ [ CONST ] TWODESCRIPTOR ] l
! TWODESCRIPTOR l ONEDESCRIPTOR l XCHAR l LPAREN FDGROUP RPAREN ) l
! TWODESCRIPTOR l ONEDESCRIPTOR l TCHAR [ LCHAR l RCHAR ] CONST l
! SCHAR [ SCHAR l PCHAR ] l BCHAR ( NCHAR l ZCHAR ) l
! DOLLAR l SLASH l COLON l
! LITSTRING l XCHAR l QCHAR l LPAREN FDGROUP RPAREN ) .
!
! TWODESCRIPTOR = ( ( ECHAR l DCHAR l GCHAR ) [ CONST [ PERIOD CONST ] [ ECHAR CONST ] ] l
! ( FCHAR l ICHAR l OCHAR l ZCHAR ) [ CONST [ PERIOD CONST ] ] ) .
!
! ONEDESCRIPTOR = ( LCHAR l ACHAR l RCHAR ) [ CONST ] .
!
!
!THE FOLLOWING TABLES WERE PRODUCED BY THE BLISS MODULE "BUILD.BLI"
BIND
VECTOR METANAME= IF NOT LEFTBUILD THEN 0 ELSE PLIT(
%1% PLIT'FORMATSPEC',
%2% PLIT'LPAREN',
%3% PLIT'FDGROUP',
%4% PLIT'RPAREN',
%5% PLIT'LINEND',
%6% PLIT'FIELDDESCRIPTOR',
%7% PLIT'SLASH',
%8% PLIT'PLUS',
%9% PLIT'MINUS',
%10% PLIT'CONST',
%11% PLIT'PCHAR',
%12% PLIT'TWODESCRIPTOR',
%13% PLIT'ONEDESCRIPTOR',
%14% PLIT'XCHAR',
%15% PLIT'TCHAR',
%16% PLIT'LCHAR',
%17% PLIT'RCHAR',
%18% PLIT'SCHAR',
%19% PLIT'BCHAR',
%20% PLIT'NCHAR',
%21% PLIT'ZCHAR',
%22% PLIT'DOLLAR',
%23% PLIT'COLON',
%24% PLIT'LITSTRING',
%25% PLIT'QCHAR',
%26% PLIT'ECHAR',
%27% PLIT'DCHAR',
%28% PLIT'GCHAR',
%29% PLIT'PERIOD',
%30% PLIT'FCHAR',
%31% PLIT'ICHAR',
%32% PLIT'OCHAR',
%33% PLIT'ACHAR')-1;
BIND VECTOR ACTIONCASE=PLIT(
0 ),
VECTOR ACTIONNAME = IF NOT LEFTBUILD THEN 0 ELSE PLIT(
0 );
MACRO LLSIZE=106$;
BIND BNFTBL= PLIT( !106 ENTRIES
!TYPE SUB NUMBER
ALL↑24+ 3↑12+ 3, !1
META↑24+ 7↑12+ 3, !FDGROUP
LEXEME↑24+ LPAREN↑12+ 2, !3
OPTION↑24+ 2↑12+ 0, !4
LEXEME↑24+ RPAREN↑12+ 4, !5
LEXEME↑24+ LINEND↑12+ 5, !6
LIST↑24+ 12↑12+ 1, !7
LEXEME↑24+ SLASH↑12+ 7, !8
REPEAT↑24+ 8↑12+ 1, !9
META↑24+ 13↑12+ 6, !FIELDDESCRIPTOR
OPTION↑24+ 9↑12+ 0, !11
ALL↑24+ 10↑12+ 1, !12
ONE↑24+ 56↑12+ 13, !13
LEXEME↑24+ PLUS↑12+ 8, !14
LEXEME↑24+ MINUS↑12+ 9, !15
LEXEME↑24+ CONST↑12+ 10, !16
OPTION↑24+ 16↑12+ 0, !17
META↑24+ 70↑12+ 12, !TWODESCRIPTOR
ALL↑24+ 17↑12+ 1, !19
ONE↑24+ 14↑12+ 1, !20
LEXEME↑24+ CONST↑12+ 10, !21
LEXEME↑24+ PCHAR↑12+ 11, !22
OPTION↑24+ 19↑12+ 0, !23
LEXEME↑24+ CONST↑12+ 10, !24
OPTION↑24+ 24↑12+ 0, !25
META↑24+ 70↑12+ 12, !TWODESCRIPTOR
ALL↑24+ 25↑12+ 1, !27
LEXEME↑24+ PCHAR↑12+ 11, !28
OPTION↑24+ 27↑12+ 0, !29
LEXEME↑24+ LPAREN↑12+ 2, !30
META↑24+ 7↑12+ 3, !FDGROUP
LEXEME↑24+ RPAREN↑12+ 4, !32
ALL↑24+ 28↑12+ 1, !33
META↑24+ 70↑12+ 12, !TWODESCRIPTOR
META↑24+ 100↑12+ 13, !ONEDESCRIPTOR
LEXEME↑24+ XCHAR↑12+ 14, !36
ALL↑24+ 30↑12+ 2, !37
LEXEME↑24+ CONST↑12+ 10, !38
ONE↑24+ 33↑12+ 4, !39
LEXEME↑24+ LCHAR↑12+ 16, !40
LEXEME↑24+ RCHAR↑12+ 17, !41
LEXEME↑24+ TCHAR↑12+ 15, !42
OPTION↑24+ 40↑12+ 1, !43
LEXEME↑24+ CONST↑12+ 10, !44
LEXEME↑24+ SCHAR↑12+ 18, !45
LEXEME↑24+ PCHAR↑12+ 11, !46
LEXEME↑24+ SCHAR↑12+ 18, !47
OPTION↑24+ 45↑12+ 1, !48
LEXEME↑24+ NCHAR↑12+ 20, !49
LEXEME↑24+ ZCHAR↑12+ 21, !50
LEXEME↑24+ BCHAR↑12+ 19, !51
ONE↑24+ 49↑12+ 1, !52
LEXEME↑24+ LPAREN↑12+ 2, !53
META↑24+ 7↑12+ 3, !FDGROUP
LEXEME↑24+ RPAREN↑12+ 4, !55
ALL↑24+ 20↑12+ 3, !56
ALL↑24+ 38↑12+ 1, !57
META↑24+ 70↑12+ 12, !TWODESCRIPTOR
META↑24+ 100↑12+ 13, !ONEDESCRIPTOR
ALL↑24+ 42↑12+ 2, !60
ALL↑24+ 47↑12+ 1, !61
ALL↑24+ 51↑12+ 1, !62
LEXEME↑24+ DOLLAR↑12+ 22, !63
LEXEME↑24+ SLASH↑12+ 7, !64
LEXEME↑24+ COLON↑12+ 23, !65
LEXEME↑24+ LITSTRING↑12+ 24, !66
LEXEME↑24+ XCHAR↑12+ 14, !67
LEXEME↑24+ QCHAR↑12+ 25, !68
ALL↑24+ 53↑12+ 2, !69
ONE↑24+ 98↑12+ 1, !70
LEXEME↑24+ ECHAR↑12+ 26, !71
LEXEME↑24+ DCHAR↑12+ 27, !72
LEXEME↑24+ GCHAR↑12+ 28, !73
LEXEME↑24+ PERIOD↑12+ 29, !74
LEXEME↑24+ CONST↑12+ 10, !75
ALL↑24+ 74↑12+ 1, !76
LEXEME↑24+ ECHAR↑12+ 26, !77
LEXEME↑24+ CONST↑12+ 10, !78
ALL↑24+ 77↑12+ 1, !79
LEXEME↑24+ CONST↑12+ 10, !80
OPTION↑24+ 76↑12+ 0, !81
OPTION↑24+ 79↑12+ 0, !82
ALL↑24+ 80↑12+ 2, !83
ONE↑24+ 71↑12+ 2, !84
OPTION↑24+ 83↑12+ 0, !85
LEXEME↑24+ FCHAR↑12+ 30, !86
LEXEME↑24+ ICHAR↑12+ 31, !87
LEXEME↑24+ OCHAR↑12+ 32, !88
LEXEME↑24+ ZCHAR↑12+ 21, !89
LEXEME↑24+ PERIOD↑12+ 29, !90
LEXEME↑24+ CONST↑12+ 10, !91
ALL↑24+ 90↑12+ 1, !92
LEXEME↑24+ CONST↑12+ 10, !93
OPTION↑24+ 92↑12+ 0, !94
ALL↑24+ 93↑12+ 1, !95
ONE↑24+ 86↑12+ 3, !96
OPTION↑24+ 95↑12+ 0, !97
ALL↑24+ 84↑12+ 1, !98
ALL↑24+ 96↑12+ 1, !99
ALL↑24+ 105↑12+ 1, !100
LEXEME↑24+ LCHAR↑12+ 16, !101
LEXEME↑24+ ACHAR↑12+ 33, !102
LEXEME↑24+ RCHAR↑12+ 17, !103
LEXEME↑24+ CONST↑12+ 10, !104
ONE↑24+ 101↑12+ 2, !105
OPTION↑24+ 104↑12+ 0, !106
0)-1;